bf5741487b6bc3f22af6143d6372cee535ee63dc,app/controllers/api/DashboardsApiController.java,DashboardsApiController,addWidget,#String#,356
Before Change
@BodyParser.Of(BodyParser.FormUrlEncoded.class)
public Result addWidget(String dashboardId) {
try {
final Map<String, String> params = flattenFormUrlEncoded(request().body().asFormUrlEncoded());
String query = params.get("query");
String rangeType = params.get("rangeType");
String description = params.get("description");
Dashboard dashboard = dashboardService.get(dashboardId);
// Determine timerange type.
TimeRange timerange;
try {
int relative = 0;
if (params.get("relative") != null) {
relative = Integer.parseInt(params.get("relative"));
}
timerange = TimeRange.factory(rangeType, relative, params.get("from"), params.get("to"), params.get("keyword"));
} catch (InvalidRangeParametersException e2) {
return status(400, views.html.errors.error.render("Invalid range parameters provided.", e2, request()));
} catch (IllegalArgumentException e1) {
return status(400, views.html.errors.error.render("Invalid range type provided.", e1, request()));
}
String streamId;
if (params.containsKey("streamId")) {
streamId = params.get("streamId");
} else {
streamId = params.get("streamid");
}
final DashboardWidget widget;
try {
final DashboardWidget.Type widgetType = DashboardWidget.Type.valueOf(params.get("widgetType"));
switch (widgetType) {
case SEARCH_RESULT_COUNT: {
final Boolean trend = Boolean.parseBoolean(params.get("trend"));
After Change
@BodyParser.Of(BodyParser.Json.class)
public Result addWidget(String dashboardId) {
try {
final AddWidgetRequest request = Json.fromJson(request().body().asJson(), AddWidgetRequest.class);
String query = (String) request.config().get("query");
String rangeType = (String) request.config().get("range_type");